|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectde.bsvrz.dav.daf.main.impl.archive.request.Query
class Query
Diese Klasse stellt alle Methoden zur Verfügung um eine Archivanfrage zu stellen, sie wird der Klasse StreamedArchiveRequester benutzt.
| Nested Class Summary | |
|---|---|
private static class |
Query.DirectorStreamDemultiplexer
|
| Field Summary | |
|---|---|
private ArchiveQueryID |
_archiveRequestID
Dieses Objekt identifiziert die Archivanfrage eindeutig. |
private DataStream[] |
_arrayOfStreams
Hier werden alle streams, die zu einer Archivanfrage gehören, gespeichert. |
private boolean |
_blocking
Solange diese Variable true ist, werden alle Anfragen an die Query blockiert da das Archiv noch nicht geantwortet hat. |
private int |
_blockingFactor
Bestimmt den blockingFactor des StreamDemultiplexers. |
private static Debug |
_debug
DebugLogger für Debug-Ausgaben |
private short |
_defaultSimulationVariant
|
private String |
_errorMessage
Falls es zu einem Fehler gekommen ist, zu welchem. |
private int |
_numberOfFinishedStreams
Diese Variable speichert, wie viele Streams bisher beendet wurden, entweder durch empfang des null-Pakets oder durch abort. |
private int |
_numberOfStreams
Wieviele Streams gehören zu der Archivanfrage. |
private ArchiveQueryPriority |
_priority
|
private int |
_receiveBufferSize
Diese Variable bestimmt die Größe des Empfangspuffers (StreamDemultiplexer). |
private boolean |
_requestSuccessful
Konnte die Anfrage zum Archiv durchgeführt werden |
private List |
_spec
ArchiveDataSpecification einer Anfrage in einer Liste speichern |
private StreamDemultiplexer |
_streamDemultiplexer
|
(package private) StreamedArchiveRequester |
_streamedArchiveRequester
|
| Constructor Summary | |
|---|---|
Query(ArchiveQueryID archiveRequestID,
ArchiveQueryPriority priority,
ArchiveDataSpecification spec,
int receiveBufferSize,
StreamedArchiveRequester streamedArchiveRequester,
short defaultSimulationVariant)
Archivanfrage mit einem Objekt |
|
Query(ArchiveQueryID archiveRequestID,
ArchiveQueryPriority priority,
List spec,
int receiveBufferSize,
StreamedArchiveRequester streamedArchiveRequester,
short defaultSimulationVariant)
|
|
| Method Summary | |
|---|---|
void |
archiveDataResponse(byte[] data)
Diese Methode verwaltet Nutzdaten, die für eine Archivanfrage empfangen wurden. |
(package private) void |
countFinishedStream()
Diese Methode wird von einem Objekt der Klasse Query aufgerufen sobald der Stream des Objekts ein null-Paket empfängt oder die Empfängerapplikation abort aufruft. |
ArchiveQueryID |
getArchiveRequestID()
Die Rückgabe identifiziert eine Archivanfrage. |
String |
getErrorMessage()
Bestimmt eine Fehlernachricht, falls die entsprechende Archivanfrage nicht erfolgreich war. |
ArchiveDataStream[] |
getStreams()
Diese Methode gibt alle Streams, die zu einer Archivanfrage gehören, zurück. |
void |
initiateArchiveRequest()
Mit dieser Methode wird die initiale Archivanfrage verschickt. |
void |
initiateArchiveResponse(byte[] queryResponse)
Diese Methode wird vom StreamedArchivRequester aufgerufen, sobald das Archiv auf die erste Archivanfrage eines Auftrags antwortet. |
boolean |
isRequestSuccessful()
Diese Methode blockiert solange, bis das Archiv auf die erste Archivanfrage geantwortet hat. |
(package private) void |
killAllStreams()
Diese Methode benachrichtigt den StreamDemultiplexer, dass ein Fehler aufgetreten ist und das alle Streams beendet werden müssen. |
void |
lostArchive()
Die Verbindung zum Archive wurde unterbrochen, alle Streams werden abgebrochen und liefern beim Aufruf der Methode DataStream.take() eine
Exception. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
StreamedArchiveRequester _streamedArchiveRequester
private final ArchiveQueryID _archiveRequestID
private DataStream[] _arrayOfStreams
private final ArchiveQueryPriority _priority
private final List _spec
private StreamDemultiplexer _streamDemultiplexer
private final int _numberOfStreams
private int _numberOfFinishedStreams
private final int _receiveBufferSize
StreamedArchiveRequester.setReceiveBufferSize(int) gesetzt werden, für diese Anfrage ist der
Wert allerdings konstant.
private boolean _requestSuccessful
private String _errorMessage
private boolean _blocking
private int _blockingFactor
private static final Debug _debug
private final short _defaultSimulationVariant
| Constructor Detail |
|---|
public Query(ArchiveQueryID archiveRequestID,
ArchiveQueryPriority priority,
ArchiveDataSpecification spec,
int receiveBufferSize,
StreamedArchiveRequester streamedArchiveRequester,
short defaultSimulationVariant)
archiveRequestID - eindeutige Identifizierung der Anfrage, diese wird benötigt um Archivantworten an das Objekt weiterzuleitenpriority - Priorität der Anfragespec - ArchivanfragereceiveBufferSize - Größe des Empfangspuffers (in Byte)streamedArchiveRequester - Objekt über das Archivanfragen verschickt werden könnendefaultSimulationVariant - Falls keine Simulationsvariante gesetzt wurde wird dieser Wert als default benutzt.
public Query(ArchiveQueryID archiveRequestID,
ArchiveQueryPriority priority,
List spec,
int receiveBufferSize,
StreamedArchiveRequester streamedArchiveRequester,
short defaultSimulationVariant)
archiveRequestID - eindeutige Identifizierung der Anfrage, diese wird benötigt um Archivantworten an das Objekt weiterzuleitenpriority - Priorität der Anfragespec - ArchivanfragereceiveBufferSize - Größe des Empfangspuffers (in Byte)streamedArchiveRequester - Objekt über das Archivanfragen verschickt werden könnendefaultSimulationVariant - Falls keine Simulationsvariante gesetzt wurde wird dieser Wert als default benutzt.| Method Detail |
|---|
public void initiateArchiveRequest()
public boolean isRequestSuccessful()
throws InterruptedException
isRequestSuccessful in interface ArchiveQueryResultInterruptedException - Falls der aufrufende Thread unterbrochen wurde, während auf die entsprechende
Antwortnachricht aus dem Archivsystem gewartet wurde.
public String getErrorMessage()
throws InterruptedException
ArchiveQueryResult
getErrorMessage in interface ArchiveQueryResultInterruptedException - Falls der aufrufende Thread unterbrochen wurde, während auf die entsprechende
Antwortnachricht aus dem Archivsystem gewartet wurde.
public ArchiveDataStream[] getStreams()
throws IllegalStateException,
InterruptedException
getStreams in interface ArchiveDataQueryResultIllegalStateException - Die Archivanfrage konnte nicht vom Archiv bearbeitet werden, somit durfte diese Methode nicht aufgerufen werden
InterruptedException - Falls der aufrufende Thread unterbrochen wurde, während auf die entsprechende
Antwortnachricht aus dem Archivsystem gewartet wurde.ArchiveRequestManager.request(ArchiveQueryPriority,ArchiveDataSpecification),
ArchiveRequestManager.request(ArchiveQueryPriority, java.util.List)public void initiateArchiveResponse(byte[] queryResponse)
queryResponse - Die Antwort des Archivs, die Informationen im byte-Array codiertpublic void archiveDataResponse(byte[] data)
data - Nutzdaten für eine Archivanfragevoid countFinishedStream()
void killAllStreams()
public void lostArchive()
DataStream.take() eine
Exception.
public ArchiveQueryID getArchiveRequestID()
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||